Users often interact with computer application programs through a series of form-based operations or actions to access the functionalities of the application programs. For example, upon selecting an icon object on a computer display using an input device, such as a mouse, the user may be presented with a menu of options. The user may then select one of the options to interact with the selected icon object using functionalities of the application programs (e.g., “copy” highlighted text or “send” a selected document to an email recipient). As such, the set of menus becomes an entry point of the user's experience to the application programs. Presently available user interface design disadvantageously limits the user to only those displayed options because the applications typically include other functionalities that are not presented to the user. Consequently, the user cannot see what the form designer/developer did not code or present on the current user interface design. In order to show all or most of the functionalities of the application, user interface designers or developers currently need to hard-code the functionalities.
For example, business applications use forms, navigations, query interfaces, and other special user interface (UI) artifacts to create a desired user experience. The design of the UI artifacts determines the entry points for users into the application state and behavior. Unfortunately, the design of the UI artifacts also limits these entry points. Further to the example, workflow applications typically expose tasks to user in forms dedicated to the particular task instances (e.g., form for “approve this order” task). Thus, users may be unable to know as much about a particular task as they would like (e.g., “What happens if the task is skipped? Are there other outstanding tasks related to this one?”), which complicates collaboration and sharing of information.
Some existing systems attempt to enhance the standard or default menu of options by providing a list of short-cut keys or tips to allow the user to further interact with the application programs. However, these enhanced options are usually presented in a separate list and only statically extend the default options while forcing the users to remember more non-user friendly shortcut keys.
Currently available workflow applications provide limited default options in their dedicated task UIs. Some other systems purpose-built and UIs provide access the other functionalities of the applications through custom-codes or customizations. In the workflow example, additional information may be custom-coded for a dedicated task UI but the UI designer cannot possibly anticipate every possible combination or direction that the user may want to explore in connection with a dedicated task UI. Therefore, in addition to being overly cumbersome at times, these custom-codes or customizations usually do not cover all available functionalities and are static in nature such that the customizations have specific and limited usages.
Presenting adequate functionality to the user is particularly problematic in devices, such as mobile devices with small form factors, that have difficulty supporting traditional “verbose” forms (i.e., forms in which headers and frames contain relatively large amounts of spatial and textual information). Verbose forms include, for example, buttons, navigation bars, parent-child tables in which the child table moves in synchronization with a selection in a parent table, etc. As such, it is difficult to notify users of both the character of the information they are interacting with, and the behaviors available from the underlying business applications around the information. The ability to address the information by means of speech commands is increasingly important.
Speech commands allow users to address a larger number of possibilities (i.e. sentences) than do traditional visual forms. Although audio interface systems, such as speech recognition systems, provide sets of basic functions, users do not necessarily know which functions are available to them. For example, in a conventional automated customer service system, a user may receive a set of options via a set of pre-recorded human voice. The user may be asked to speak to a telephone headset which type of customer services he or she wishes to access. As an illustration, suppose the user wishes to speak to a customer representative regarding her bill. Initially, the user may be prompted by an automated voice system to choose which areas of service she is calling about: “account billing”, “adding services”, “technical support”, or “other” services. In this instance, the user may respond to the voice prompt by stating the desired services. After this initial selection, the user would receive a further or a cascading set of options presented to the user before she may be directed to speak to a live customer representative directly. In many instances, existing audio interface system allow the user to bypass the presented options and reach a live-person customer service by speaking “agent”, “representative”, or “talk to an agent”. However, this “hidden” shortcut is usually not apparent to the user even though the audio interface systems have capabilities to perform such action.